﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TwoDimensionalArray
{
    class Program
    {
        static void Main(string[] args)
        {
            //Создать метод, который выведет на экран календарь на месяц. 
            //Для работы метода необходимо указать количество дней в месяце и с какого дня недели начинается месяц. 
            //Внутри должен быть создан массив размером 6 на 7(календарь).
            //Все элементы попадающие на другой месяц приравниваются 0.
            //При выводе на экран все нулевые элементы должны отображаться " "

            Console.Write("Enter start of month: ");
            int startDayOfMonth = Int32.Parse(Console.ReadLine());
            Console.Write("Enter days in month: ");
            int daysInMonth = Int32.Parse(Console.ReadLine());

            int[,] calendar = CreateCalendar(startDayOfMonth, daysInMonth);
            PrintCalendar(calendar);
        }

        static int[,] CreateCalendar(int startDayOfMonth, int daysInMonth)
        {
            int[,] calendar = new int [6,7];
            int day = 1;
            for (int j = startDayOfMonth - 1; j < 7; j++)
            {
                calendar[0, j] = day;
                day++;
            }
            for (int i = 1; i <= 4; i++)
            {
                for (int j = 0; j < 7; j++)
                {
                    if (day >= daysInMonth + 1)
                        break;
                    calendar[i, j] = day;
                    day++;
                }
            }
            for (int j = 0; j < 7; j++)
            {
                if (day >= daysInMonth + 1)
                    break;
                calendar[5, j] = day;
                day++;
            }
            return calendar;
        }

        static void PrintCalendar(int[,] arrayForPrint)
        {
            for (int i = 0; i < arrayForPrint.GetLength(0); i++)
            {
                for (int j = 0; j < arrayForPrint.GetLength(1); j++)
                {
                    Console.Write("{0}\t", arrayForPrint[i, j]);
                }
                Console.WriteLine();
            }
        }
    }
}